package com.xiaoyuanbang.common.task;

import com.xiaoyuanbang.order.service.OrderService;
import com.xiaoyuanbang.model.EsOrderVo;
import com.xiaoyuanbang.search.service.OrderVoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;

@Component
@Configuration      //1.主要用于标记配置类，兼备Component的效果。
@EnableScheduling   // 2.开启定时任务
public class ScheduleTask {
//    @Autowired
//    private RestTemplate restTemplate;
    @Autowired
    private OrderVoService orderVoService;
    @Autowired
    private OrderService orderService;
    //3.添加定时任务
    @Scheduled(cron = "0 0/1 * * * ? ")
    //或直接指定时间间隔，例如：5秒
    //@Scheduled(fixedRate=5000)
    private void configureTasks() {
        System.err.println("执行静态定时任务时间: " + LocalDateTime.now());
        try {
            Iterable<EsOrderVo> all = orderVoService.findAndDelete();
        }   catch (Exception e)  {
            System.out.println(e.getMessage());
        }
    }


    @Scheduled(cron = "0 0/1 * * * ? ")
    private void cancelUpaidOrder() {
        System.err.println("执行取消超时未支付订单静态定时任务时间: " + LocalDateTime.now());
        try {
            orderService.deleteOverdueUnpaidOrders();
        }   catch (Exception e)  {
            e.printStackTrace();
        }
    }
}
